In computing, the term “patch” is commonly used to refer to an update designed to change a previous version of a computer program. Patches are commonly used to apply fixes to software insecurities and bugs. A typical manufacturer of a computer program periodically releases patches, and persons responsible for maintaining computer systems, such as a user or an administrator of a computer system, receive and install the patches in their respective computing systems.
Tools for assisting with the management and deployment of patches are available. Such conventional tools, which can be especially useful for administrators of large computer systems, are designed to deploy patches at regular intervals. For example, a conventional patch management tool may be configured to deploy patches once a day such as during a predetermined off-peak time period.
Unfortunately, scheduled periodic patching can leave vulnerabilities in a computer system. For instance, an application may be installed to a computing device between regularly scheduled patch deployments. The installed application may be in need of one or more previously released patches, without which the application or the computing device may be insecure and/or buggy. Accordingly, the application, the computing device, and potentially an entire computing system may be in a vulnerable state any time the application is executed before the next regularly scheduled patch deployment is executed and the application patched. Such vulnerabilities, even if temporary, can create significant risks and other problems for owners and operators of computing systems.
While it is possible to decrease the length of time between scheduled patch deployments, this approach is resource intensive and may require significant amounts of network and computing bandwidth. Accordingly, this is not a practical solution for all situations or computing systems. Moreover, simply increasing the frequency of scheduled patch deployments may reduce but does not eliminate the occurrence of application vulnerability.